Python/Ruby

推荐列表 站点导航

当前位置:首页 > 脚本编程 > Python/Ruby >

python3类比函数好用吗?该如何选择?

来源:网络整理  作者:  发布时间:2020-12-20 10:44
jquery中文网为您提供python3类比函数好用吗?该如何选择?等资源,欢迎您收藏本站,我们将为您提供最新的python3类比...

 那么在之前:

 some_song = {     "title": "Yellow Submarine",     "artist": the_beatles, # 指向到包含该艺术家的词典     "album": yellow_submarine_album, # 指向包含此相册的dict的链接     "duration": insert_time_object_here,     "filepath": "path/to/file/on/disk" }   # 其他数据类型的结构也类似   # 一些函数 def play_song(song):     # 获取歌的路径     path = song["filepath"]     # 播放路径     call_some_library_function(path)   def play_album(album):     # 找到专辑里所有的歌曲     # 分别调用play_song   def play_artist(artist):     # 找到这位艺术家所有的专辑     # 分别调用play_album   def play_playlist(playlist):     # 找到播放列表中的所有歌曲 # 分别调用play_song

 这样写有什么不好?我们有四个非常相似的函数,每个函数都与特定类型的数据相关。你必须把它们叫做不同的东西,而不仅仅是play,你必须确保你把正确的数据传递给它们。虽然这四种不同的类型都可以“播放”,但是没有一种通用的方法可以在不知道它是什么的情况下播放任何东西。那么在OOP下,怎么实现呢:

以上就是类跟函数的使用对比,有的小伙伴们肯定说小编偏向于类了。其实这只是一个应用场景的选择,大家也不用纠结于这一点,选择合适的使用才是最重要的。

class Song:     def __init__(self, title, artist, album, duration, filepath):         self.title = title         self.artist = artist         self.album = album         self.duration = duration         self.filepath = filepath       def play(self):         path = self.filepath         call_some_library_function(path)

这样就定义了如何创建一个新的Song对象。该方法将字段值作为参数,并将它们作为对象的属性赋值。self是一个特殊参数(名称不保留;它可以被称为任何东西),它是对对象本身的引用。是一种从同一对象的其他方法内部访问属性和方法的方法。当我们从对象外部访问它们时(要使用play方法时将执行此操作),则可以使用在该范围内为对象指定的任何名称。


# some_song是上面定义的歌 play_song(some_song) 在使用class之后: # self参数没有在这里传递;它会自动添加 some_song = Song("Yellow Submarine",                 the_beatles,                 yellow_submarine_album,                 insert_time_object_here,                 "path/to/file/on/disk"             ) some_song.play()

为什么这样更好?如果我们有一个对象,则不必知道它是什么就可以播放,因为现在播放任何内容的语法都是相同的:anyobject.play()即对象“知道”如何使用“自己的”数据进行处理的设计思想。无需从外部检查对象是否具有某些字段并决定如何处理这些内部字段,而是调用play对象提供的方法,并在每个类内部定义该类型的对象应如何实现此功能。

假设我们需要编写一个音乐播放器。在这个播放器中,我们有关于不同类型数据的信息,如歌曲、专辑、艺术家和播放列表。还有一些可以播放歌曲、播放专辑、播放艺术家或播放播放列表的功能。我们将每种数据存储在字典中,不同类型的数据有不同的字段名,因为每个play函数需要做不同的事情,所以我们就有四个不同的函数:

python中的函数数不胜数,是我们学习python重要的模块之一。类作为python的另一个模块,与函数相比丝毫不逊色。两者平分春秋,具体选择哪个还是要看各位小伙伴们的使用。为了让大家体会两者用法的不同,小编特意找了一个例子,让大家在对比中选择更合适的用法。下面我们一起看看示例吧。

相关热词: python

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/python/6062.shtml

相关文章
最新文章
python日常一 利用python抓取 python日常一 利用python抓取

时间:2021-01-17

一个 ARP 请求分组询问协议 一个 ARP 请求分组询问协议

时间:2021-01-17

此时就需要web抓取 此时就需要web抓取

时间:2021-01-17

这节我们使用Bootstrap 这节我们使用Bootstrap

时间:2021-01-17

我们该如何运用Python 来统 我们该如何运用Python 来统

时间:2020-12-27

python生成汉字图片字库 python生成汉字图片字库

时间:2020-12-26

python通过protobuf实现rpc python通过protobuf实现rpc

时间:2020-12-26

djngo快速实现使用Bootstra djngo快速实现使用Bootstra

时间:2020-12-26

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

python3类比函数好用吗?该如何选择?

2020-12-20 编辑:

 那么在之前:

 some_song = {     "title": "Yellow Submarine",     "artist": the_beatles, # 指向到包含该艺术家的词典     "album": yellow_submarine_album, # 指向包含此相册的dict的链接     "duration": insert_time_object_here,     "filepath": "path/to/file/on/disk" }   # 其他数据类型的结构也类似   # 一些函数 def play_song(song):     # 获取歌的路径     path = song["filepath"]     # 播放路径     call_some_library_function(path)   def play_album(album):     # 找到专辑里所有的歌曲     # 分别调用play_song   def play_artist(artist):     # 找到这位艺术家所有的专辑     # 分别调用play_album   def play_playlist(playlist):     # 找到播放列表中的所有歌曲 # 分别调用play_song

 这样写有什么不好?我们有四个非常相似的函数,每个函数都与特定类型的数据相关。你必须把它们叫做不同的东西,而不仅仅是play,你必须确保你把正确的数据传递给它们。虽然这四种不同的类型都可以“播放”,但是没有一种通用的方法可以在不知道它是什么的情况下播放任何东西。那么在OOP下,怎么实现呢:

以上就是类跟函数的使用对比,有的小伙伴们肯定说小编偏向于类了。其实这只是一个应用场景的选择,大家也不用纠结于这一点,选择合适的使用才是最重要的。

class Song:     def __init__(self, title, artist, album, duration, filepath):         self.title = title         self.artist = artist         self.album = album         self.duration = duration         self.filepath = filepath       def play(self):         path = self.filepath         call_some_library_function(path)

这样就定义了如何创建一个新的Song对象。该方法将字段值作为参数,并将它们作为对象的属性赋值。self是一个特殊参数(名称不保留;它可以被称为任何东西),它是对对象本身的引用。是一种从同一对象的其他方法内部访问属性和方法的方法。当我们从对象外部访问它们时(要使用play方法时将执行此操作),则可以使用在该范围内为对象指定的任何名称。


# some_song是上面定义的歌 play_song(some_song) 在使用class之后: # self参数没有在这里传递;它会自动添加 some_song = Song("Yellow Submarine",                 the_beatles,                 yellow_submarine_album,                 insert_time_object_here,                 "path/to/file/on/disk"             ) some_song.play()

为什么这样更好?如果我们有一个对象,则不必知道它是什么就可以播放,因为现在播放任何内容的语法都是相同的:anyobject.play()即对象“知道”如何使用“自己的”数据进行处理的设计思想。无需从外部检查对象是否具有某些字段并决定如何处理这些内部字段,而是调用play对象提供的方法,并在每个类内部定义该类型的对象应如何实现此功能。

假设我们需要编写一个音乐播放器。在这个播放器中,我们有关于不同类型数据的信息,如歌曲、专辑、艺术家和播放列表。还有一些可以播放歌曲、播放专辑、播放艺术家或播放播放列表的功能。我们将每种数据存储在字典中,不同类型的数据有不同的字段名,因为每个play函数需要做不同的事情,所以我们就有四个不同的函数:

python中的函数数不胜数,是我们学习python重要的模块之一。类作为python的另一个模块,与函数相比丝毫不逊色。两者平分春秋,具体选择哪个还是要看各位小伙伴们的使用。为了让大家体会两者用法的不同,小编特意找了一个例子,让大家在对比中选择更合适的用法。下面我们一起看看示例吧。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/python/6062.shtml

相关文章

风云图片

推荐阅读

返回Python/Ruby频道首页